+Overview of Changes from GTK+ 2.16.x to 2.17.0
+==============================================
+
+* Changes that are relevant for theme authors
+ - GtkEntry now has a ::invisible-char style property that allows
+ themes to set the preferred invisible character
+
+
Overview of Changes from GTK+ 2.16.0 to 2.16.1
==============================================
GTK_TYPE_BORDER,
GTK_PARAM_READABLE));
+ /**
+ * GtkEntry::invisible-char:
+ *
+ * The invisible character is used when masking entry contents (in
+ * \"password mode\")"). When it is not explicitly set with the
+ * #GtkEntry::invisible-char property, GTK+ determines the character
+ * to use from a list of possible candidates, depending on availability
+ * in the current font.
+ *
+ * This style property allows the theme to prepend a character
+ * to the list of candidates.
+ *
+ * Since: 2.22
+ */
+ gtk_widget_class_install_style_property (widget_class,
+ g_param_spec_unichar ("invisible-char",
+ P_("Invisible character"),
+ P_("The character to use when masking entry contents (in \"password mode\")"),
+ 0,
+ GTK_PARAM_READABLE));
+
/**
* GtkEntry::populate-popup:
* @entry: The entry on which the signal is emitted
PangoAttrList *attr_list;
gint i;
gunichar invisible_chars [] = {
+ 0,
0x25cf, /* BLACK CIRCLE */
0x2022, /* BULLET */
0x2731, /* HEAVY ASTERISK */
0x273a /* SIXTEEN POINTED ASTERISK */
};
+ if (widget->style)
+ gtk_widget_style_get (widget,
+ "invisible-char", &invisible_chars[0],
+ NULL);
+
layout = gtk_widget_create_pango_layout (widget, NULL);
attr_list = pango_attr_list_new ();
pango_layout_set_attributes (layout, attr_list);
pango_attr_list_unref (attr_list);
- for (i = 0; i < G_N_ELEMENTS (invisible_chars); i++)
+ for (i = (invisible_chars[0] != 0 ? 0 : 1); i < G_N_ELEMENTS (invisible_chars); i++)
{
gchar text[7] = { 0, };
gint len, count;
}
g_object_unref (layout);
+
return '*';
}